// File: jmcomic-core/src/main/java/dev/jukomu/jmcomic/client/JmImageClient.java
package dev.jukomu.jmcomic.client;

import dev.jukomu.jmcomic.entity.JmImageDetail;

import java.io.IOException;

/**
 * 对应Python的JmImageClient，定义下载和处理禁漫图片的接口。
 */
public interface JmImageClient {

    /**
     * 下载禁漫图片。
     *
     * @param imgUrl      图片URL。
     * @param imgSavePath 图片保存路径。
     * @param scrambleId  图片所属章节的解密ID。
     * @param decodeImage 是否需要解密图片。
     * @return JmImageResp响应对象。
     * @throws IOException 如果下载失败。
     */
    JmImageResp downloadImage(String imgUrl, String imgSavePath, String scrambleId, boolean decodeImage) throws IOException;

    /**
     * 根据JmImageDetail实例下载图片。
     *
     * @param image       JmImageDetail实例。
     * @param imgSavePath 图片保存路径。
     * @param decodeImage 是否需要解密图片。
     * @return JmImageResp响应对象。
     * @throws IOException 如果下载失败。
     */
    JmImageResp downloadByImageDetail(JmImageDetail image, String imgSavePath, boolean decodeImage) throws IOException;

    /**
     * 获取禁漫图片响应。
     *
     * @param imgUrl 图片URL。
     * @return JmImageResp响应对象。
     */
    JmImageResp getJmImage(String imgUrl);
}